/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejercicio2;
import java.io.*;
/**
 * Programa que pide notas de 25 alumnos de una clase.Para despues visualizar 
 * en pantalla sus calificaciones.
 * @author Yasmina Muro García
 */
public class Ejercicio2 {
    /**
     * Metodo principal
     * @param args Es el parametro que siempre lleva el main
     * @throws IOException Errores producidos por la entrada/salida
     */
    public static void main(String[]args) throws IOException
    {
        int max=-1,min=11,num = 0,nota=0,suspenso=0,suficiente=0,bien=0,notable=0,sobresaliente=0;
        String nombremin="",nombre,nombremax ="";
        boolean mal=true;
        while(nota<25)
        { 
             nota++;
              nombre=pedirNombre("Introduce un nombre");
              mal=true;
             while (mal)
             {
               try{
                  num=pedirNumero("Introduce una nota");
                  if(num<0||num>10)
                  {
                      System.out.println("mal");
                   }
                  else
                  {
                      mal=false;
                  }
                }
                catch(NumberFormatException ex){
                     System.out.println(" ERROR, por favor introduce una nota ");
                 }
             }
           if(num<5)
           {
               suspenso++;
              
           }
           else
               if(num<6)
               {
                   suficiente++;
               }
              else
                   if(num<7)
                   {
                       bien++;
                   }
                   else
                       if(num<=8)
                       {
                           notable++;
                       }
                       else{
                               sobresaliente++;
                       }
           
           if (num<min)
           {
               min=num;
               nombremin=nombre;
           }
           if(num>max)
           {
               max=num;
               nombremax=nombre;
           }
           
            
        }
        
        System.out.println("\t Estadística notas");
        System.out.print("Sobresaliente:\t");
        asterisco(sobresaliente);
        System.out.print("\nNotable:\t");
        asterisco(notable);
        System.out.print("\nBien:\t\t");
        asterisco(bien);
        System.out.print("\nSuficiente:\t");
        asterisco(suficiente);
        System.out.print("\nInsuficiente:\t");
        asterisco(suspenso);
 
        System.out.println("\nEl alumno con mayor nota es:"+nombremax+"\t"+max);
        System.out.println("\nEl alumno con menor nota es:"+nombremin+"\t"+min);
    }
    /**
     * Metodo que pide la nota del alumno
     * @param mensaje Mensaje a visualizar, es un dato de tipo string
     * @return numero devuelve un dato de tipo numerico entero
     * @throws IOException Errores producidos por la entrada/salida
     */
    public static int pedirNumero(String mensaje) throws IOException
    {
        int numero;
        InputStreamReader flujo=new InputStreamReader(System.in);
        BufferedReader teclado=new BufferedReader(flujo);
        System.out.println(mensaje);
        numero=Integer.parseInt(teclado.readLine());
        return numero;
    }
    /**
     * Metodo que pone un asterisco por cada nota en su calificion correspodiente.
     * @param numero El parametro que se le pasa es un numero
     */
    public static void asterisco(int numero)
    {
        int i=0;
        while(i<numero)
        {
            i++;
            System.out.print("*");
        }
    }
    /**
     * Metodo para pedir el nombre del alumno
     * @param mensaje Mensaje a visualizar, es un dato de tipo string
     * @return Nombre devuelve un dato de tipo String
     * @throws IOException Errores producidos por la entrada/salida
     */
    public static String pedirNombre(String mensaje) throws IOException
    {
        String nombre;
        InputStreamReader flujo=new InputStreamReader(System.in);
        BufferedReader teclado=new BufferedReader(flujo);
        System.out.println(mensaje);
        nombre=teclado.readLine();
        return nombre;
        
    }
}
